#!/usr/bin/env bash

# 阿拉伯数字18作为异常退出码
# 需要注意shell的赋值【=】前后不能有空格
export check='[ $? -eq 0 ] || exit 18'

echo "您好，请输入数字选择安装模式，有以下模式可供选择："
echo "1、harmonious：使用docker容器，服务与数据库分离"
echo "2、independent：使用docker容器，使用一个容器部署所有服务"
echo "3、free：使用docker容器，所有服务分离"
echo "4、physical：不使用docker容器，直接部署"
echo "5、退出"
echo "*【42】秒内不选择将默认使用模式【2、independent】部署"

function deploy() {
  while true; do
    read -t 42 -p "请输入一个数：" sign
    sign=${sign:-2}
    echo "您选择了安装模式：$sign"
      case "$sign" in
      "1")
        MODE="harmonious"
        break
        ;;
      "2")
        MODE="independent"
        break
        ;;
      "3")
        MODE="free"
        break
        ;;
      "4")
        MODE="physical"
        break
        ;;
      "5")
        echo "结束部署，退出"
        exit
        break
        ;;
      *)
        echo "输入不合法，请重新输入"
        ;;
      esac
  done
  #将MODE设为环境变量，后面脚本会根据MODE做一些判断
  export MODE
  eval "$check" && echo "当前模式：$sign 》$MODE"
  eval "$check" && cd $MODE
  eval "$check" && bash deploy.sh
}

eval "$check" && deploy

eval "$check" && echo "执行完成！！！"

